// #include <iostream>
// #include <queue>
// #include <thread>

// std::queue<int> q;

// void push() {
//     for(int i = 0; i < 1000; ++i) 
//         q.push(i);
// }

// int main() {
//     std::thread t1(push);
//     std::thread t2(push);

//     t1.join();
//     t2.join();

//     std::cout << q.size() << std::endl;
//     return 0;
// }

#include <iostream>
#include <thread>
#include "ThreadSafeQueue.hpp"

ThreadSafeQueue<int> tsq;

void push() {
    for(int i = 0; i < 1000; ++i) 
        tsq.push(i);
}

int main() {
    std::thread t1(push);
    std::thread t2(push);

    t1.join();
    t2.join();

    std::cout << tsq.size() << std::endl;

    return 0;
}